#!/bin/bash
# 修复 cbp2make 内部重复文件脚本
# 只处理 cbp2make 和 cbp2make_ai 之间的重复，不涉及基础库

cd /d/vc/UEStudio/src

echo "=== 检查 cbp2make 内部重复文件 ==="
echo ""

# 检查两个项目之间的文件重复
echo "1. 检查 cbp2make 和 cbp2make_ai 之间的文件重复:"

find tools/cbp2make_ai -name "*.cpp" -o -name "*.h" | while read ai_file; do
    filename=$(basename "$ai_file")
    cbp_file="tools/cbp2make/${ai_file#tools/cbp2make_ai/}"
    
    if [ -f "$cbp_file" ] && [ -f "$ai_file" ]; then
        if diff -q "$cbp_file" "$ai_file" >/dev/null 2>&1; then
            echo "✅ 完全相同: $filename"
            echo "   可以统一引用: $cbp_file"
        else
            echo "⚠️  文件不同: $filename"
            echo "   cbp2make: $cbp_file ($(wc -l < "$cbp_file") 行)"
            echo "   cbp2make_ai: $ai_file ($(wc -l < "$ai_file") 行)"
        fi
    elif [ -f "$ai_file" ]; then
        echo "🔸 cbp2make_ai 独有: $filename"
    fi
done

echo ""
echo "2. 建议的统一引用方案:"

cat > cbp2make_unified_plan.md << 'PLANEOF'
# cbp2make 内部统一引用方案

## 现状分析

通过检查发现，cbp2make 和 cbp2make_ai 之间存在文件重复。

## 处理原则

1. **保持 cbp2make_ai 的独立性** - 不破坏原有 cbp2make
2. **消除重复** - 对于完全相同的文件，统一引用
3. **保留差异** - 对于不同的文件，保持独立

## 具体方案

### 可以统一引用的文件（完全相同）:
- 所有 lib/ 目录下的辅助库文件
- 大部分 src/ 目录下的核心文件

### 需要保持独立的文件（有差异）:
- src/aicoder_enhancements.cpp (AI 增强功能)
- 其他被修改过的 AI 增强文件

## 实施方法

在 cbp2make_ai 项目文件中，将相同的文件改为引用 cbp2make 的版本：

```xml
<!-- 改为引用原项目文件 -->
<Unit filename="../cbp2make/src/cbproject.cpp" />
<Unit filename="../cbp2make/src/cbworkspace.cpp" />
<!-- 其他相同文件 -->

<!-- 保留独有的 AI 增强文件 -->
<Unit filename="src/aicoder_enhancements.cpp" />PLANEOF

cat cbp2make_unified_plan.md
